package com.zerdoor.dao;

import java.util.List;
import java.util.Map;

/**
 * Created by xiaoji on 2014/11/3.
 */
public interface RaceDetailDao {

    /**
     * FunName:           getRaceDetailByRaceId
     * Description :      根据竞赛ID查看竞赛详情
     * @param raceId 竞赛编号
     * @return String：   竞赛信息
     * @Author:       xiaoji
     * @Create Date: 2014-12-1
     */
    public Map<String, Object> getRaceDetailByRaceId(Integer raceId);

    /**
     * FunName:           getRaceManuscript
     * Description :      获取竞赛投稿信息
     * @param raceId 竞赛编号
     * @return String：   竞赛投稿信息
     * @Author:       xiaoji
     * @Create Date: 2014-12-1
     */
    public List<Map<String, Object>> getRaceManuscript(Integer raceId);

    /**
     * FunName:           getProcesses
     * Description :      获取所有竞赛进程
     * @return String：   进程信息
     * @Author:       xiaoji
     * @Create Date: 2014-12-1
     */
    public List<Map<String, Object>> getProcesses();

    /**
     * FunName:           getUserBidinfoByTaskId
     * Description :      查询用户是否竞标
     * @param map userId : 用户编号 raceId : 竞赛编号
     * @return String：   返回竞标条数
     * @Author:       xiaoji
     * @Create Date: 2014-12-1
     */
    public Integer getUserRaceManuscriptByRaceId(Map<String, Object> map);

    /**
     * FunName:           getRaceManuscriptPrize
     * Description :      获取获奖竞赛投稿信息
     * @param raceId 竞赛编号
     * @return String：   竞赛投稿信息
     * @Author:       xiaoji
     * @Create Date: 2015-1-6
     */
    public List<Map<String, Object>> getRaceManuscriptPrize(Integer raceId);

    /**
     * 设置中奖前验证
     * @param map 竞赛活动编号
     * @return
     */
    public List<Map<String, Object>> getRaceByUserId(Map<String, Object> map);

    /**
     * 保存获奖者名次
     * @throws Exception
     */
    public void updateWinRace(Map<String, Object> map) throws Exception;

    /**
     * 改变中奖等级的中奖数量
     * @param map 中奖等级编号；竞赛活动编号
     * @throws Exception
     */
    public void updatePrizeWinNum(Map<String, Object> map) throws Exception;

    /**
     * 改变中奖进度为验收付款
     * @param map 竞赛活动编号
     * @throws Exception
     */
    public void updateRaceProgress(Map<String, Object> map) throws Exception;

    /**
     * 查询竞赛活动奖项设置等级
     * @param raceId 竞赛活动编号
     * @return 返回竞赛活动中奖等级
     */
    public List<Map<String, Object>> getPrizeByRaceId(int raceId);


    /**
     * 根据编号获取奖项设置等级数量
     * @param prizeId  奖项设置编号
     * @return
     */
    public int getPrizeById(int prizeId);

}
